package com.zp.self.module.level_4_算法练习.数据结构.二叉树;

import java.util.ArrayList;
import java.util.List;

/**
 * @author By ZengPeng
 */
public class 力扣_145_二叉树的后序遍历 {
    //测试
    public static void main(String[] args) {
        TreeNode root = TreeNode.initRoot();
        System.out.println( new 力扣_145_二叉树的后序遍历().postorderTraversal(root));
    }

    /**
     * 题目：给你一棵二叉树的根节点 root ，返回其节点值的 后序遍历 。
     *
     * 分析：
     *      1.while + stack
     *      2.递归，递归深度 =  数的深度？
     * 边界值注意：
     *      1. root == null
     **/
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> result =  new ArrayList<>();
        if (root==null) return result;
        result.addAll(postorderTraversal(root.left));
        result.addAll(postorderTraversal(root.right));
        result.add(root.val);
        return result;
    }
}
